System V IPC 개념 (메시지 큐·세마포어·공유메모리)

NOTE

System V가 유닉스 버전 이름이라는 것부터, System V IPC 3형제(메시지 큐/세마포어/공유메모리)의 공통 패턴과 POSIX IPC라는 대안까지 정리한다.

0. System V는 OS 이름이 아니라 유닉스 계보 이름

“System V(시스템 파이브)“는 1983년 AT&T가 내놓은 유닉스 버전입니다. 유닉스는 크게 두 갈래로 발전했습니다.

계보대표 진영대표 기능
BSD버클리 대학소켓(socket)
System VAT&T메시지 큐 / 세마포어 / 공유메모리

리눅스를 포함한 대부분의 현대 유닉스 계열 OS는 두 계보의 기능을 다 흡수했고, 그래서 리눅스에도 System V 스타일 API(msgget, semget, shmget)가 그대로 남아 있습니다.

1. System V IPC = 3형제

기능생성 함수용도
메시지 큐msgget구조화된 메시지 송수신
세마포어semget동시성 제어(락/카운터)를 여러 프로세스 간에
공유메모리shmget같은 메모리 영역을 여러 프로세스가 직접 접근

셋 다 이름이 *get으로 시작하고, key(정수) 하나로 자원을 식별한다는 공통 패턴을 가집니다. 세부 내용은:

2. POSIX IPC라는 대안도 있음

같은 목적을 하는 더 최신 표준 인터페이스로 mq_open, sem_open, shm_open(POSIX IPC)이 있습니다. 사내 프레임워크나 미들웨어가 System V 방식(msgget 계열)을 감싸서(wrapping) 자체 API로 제공하는 경우도 흔합니다 — 실제 예제는 이름-키 매핑 테이블 방식의 IPC 키 관리 참고.

핵심

System V = 유닉스 버전 이름. System V IPC = 그 버전에서 나온 프로세스 간 통신 방식 3종(메시지 큐 / 세마포어 / 공유메모리) 세트.

관련 문서